﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BHXH.Core.IService;
using FX.Core;
using CRM.Admin;
using BHXH.Core.Domain;
using NHibernate.Cfg;
using NHibernate;
using System.Text.RegularExpressions;

namespace BHXH.Frm.Frm
{
    public partial class DangNhap : Form
    {
        private readonly ItaikhoanService _taikhoanSrv;
        public DangNhap()
        {
            InitializeComponent();
            _taikhoanSrv = IoC.Resolve<ItaikhoanService>();
        }

        public bool checkLogin(string TaiKhoan, string MatKhau) {
            bool taikhoan = _taikhoanSrv.checkLogin(TaiKhoan, MatKhau);
            if (taikhoan)
                return true;
            else
                return false;
        }

        private void btnDangNhap_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.txtTaiKhoan.Text.ToString() == string.Empty)
                {
                    MessageBox.Show("Bạn không được để trống tài khoản đăng nhập!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    this.txtTaiKhoan.Focus();
                }
                else
                    if (this.txtMatKhau.Text.ToString() == string.Empty)
                    {
                        MessageBox.Show("Bạn không được để trống mật khẩu đăng nhập!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        this.txtMatKhau.Focus();
                    }
                    else
                        if (!Regex.IsMatch(txtTaiKhoan.Text, "^[a-zA-Z0-9]*$"))
                        {
                            MessageBox.Show("Bạn chỉ được nhập chữ và số!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            this.txtTaiKhoan.Focus();
                        }
                        else
                            if (!Regex.IsMatch(txtMatKhau.Text, "^[a-zA-Z0-9]*$"))
                            {
                                MessageBox.Show("Bạn chỉ được nhập chữ và số!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                this.txtMatKhau.Focus();
                            }
                            else
                            if (checkLogin(this.txtTaiKhoan.Text.ToString(), this.txtMatKhau.Text.ToString()))
                            {
                                FormMain frmMain = new FormMain();
                                frmMain.Show();
                                this.Hide();
                            }
                            else
                            {
                                MessageBox.Show("Tài Khoản Không Tồn Tại Hoặc Bạn Nhập Không Đúng!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                this.txtTaiKhoan.Focus();                              
                            }
                    }
            catch 
            {
                MessageBox.Show("Lỗi kết nối tới dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.txtTaiKhoan.Focus();
            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            try
            {
                if(DialogResult.Yes == MessageBox.Show("Bạn có thực sự muốn thoát khỏi chương trình?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
                {
                    Application.Exit();
                }
            }
            catch 
            {
                MessageBox.Show("Lỗi kết nối tới dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.txtTaiKhoan.Focus();
            }
        }
    }
}
